package com.heima.queue.consumer;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.junit.Test;

import javax.jms.*;
import java.io.IOException;

public class QueueConsumer {

    @Test
    public void testQueueConsumer(){


        try {
            //1.创建连接工厂
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.128:61616");
            //2.获取连接
            Connection connection = connectionFactory.createConnection();

            //3.启动连接
            connection.start();
            //4.获取session(参数1：是否启动事务,参数2：消息确认模式)
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            //5.创建消息对象名称
            Queue queue = session.createQueue("test-queue");

            //6.创消息消费者
            MessageConsumer consumer = session.createConsumer(queue);


            //7.监听消息
            consumer.setMessageListener(new MessageListener() {
                public void onMessage(Message message) {
                    TextMessage textMessage = (TextMessage)message;

                    try {
                        System.out.println("接收到的消息是："+textMessage.getText());

                    } catch (JMSException e) {
                        e.printStackTrace();
                    }
                }
            });

            //8.等待键盘录入
            try {
                System.in.read();
            } catch (IOException e) {
                e.printStackTrace();
            }
            //9.关闭资源
            consumer.close();
            session.close();
            connection.close();

        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}
